﻿

using IotContract.Dtos.Remotes.Request;
using IotContract.Dtos.Remotes.Response;
using IotContract.Dtos.Servers.Process;
using IotContract.Dtos.Servers.Process.F29;
using IotContract.Enums;
using IotContract.Models.Clients.Hks;

using IotContract.Models.Jobs.F29;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XT.Common.Interfaces;
using XT.Common.Models.Server;

namespace IotContract.Interfaces.Process;
/// <summary>
/// 调度任务API处理程序
/// </summary>
public interface IProcessApiHandle:IApiConfig
{
    /// <summary>
    /// 任务完成
    /// </summary>
    /// <param name="jobId"></param>
    /// <returns></returns>
    Task<AdminCodeResult<string>> CompleteJob(string jobId,string jobId2);
    /// <summary>
    /// 验证托盘进入
    /// </summary>
    /// <param name="equipNum"></param>
    /// <param name="equipType"></param>
    /// <param name="tray"></param>
    /// <returns></returns>
    Task<AdminCodeResult<string>> ValidateEnterTray(string equipNum, IotEquipType equipType, string tray);
    /// <summary>
    /// 验证托盘出去
    /// </summary>
    /// <param name="equipNum"></param>
    /// <param name="equipType"></param>
    /// <param name="tray"></param>
    /// <returns></returns>
    Task<AdminCodeResult<string>> ValidateOutTray(string equipNum, IotEquipType equipType, string tray);
    /// <summary>
    /// 提交叠盘完成
    /// </summary>
    /// <param name="tagNumber"></param>
    /// <returns></returns>
    Task<AdminCodeResult<string>> CommitStackOver(int tagNumber);
    /// <summary>
    /// 扫描后提交托盘
    /// </summary>
    /// <param name="unit"></param>
    /// <returns></returns>
    Task<AdminCodeResult<CvTrayTask>> CommitTrays(FmsCommitTrayRequest unit);

    /// <summary>
    /// 获取所有入库站台
    /// </summary>
    /// <returns></returns>
    Task<AdminCodeResult<List<EnterTagGroupDto>>> GetEnterTags();

   


    /// <summary>
    /// 站台提交扫码
    /// </summary>
    /// <param name="unitGroup"></param>
    /// <returns></returns>
    Task<AdminCodeResult<F29EnterJob>> CommitEnterTrays(FmsCommitTrayRequest unitGroup);
    /// <summary>
    /// 验证换盘进入
    /// </summary>
    /// <param name="fmsTray"></param>
    /// <returns></returns>
    Task<AdminCodeResult<string>> ValidateCebEnterTray(FmsTrayRequest fmsTray);
    /// <summary>
    /// 验证换盘出去
    /// </summary>
    /// <param name="fmsTray"></param>
    /// <returns></returns>
    Task<AdminCodeResult<string>> ValidateCebOutTray(FmsTrayRequest fmsTray);
    /// <summary>
    /// 获取换盘数据通道
    /// </summary>
    /// <param name="fmsTray"></param>
    /// <returns></returns>
    Task<AdminCodeResult<List<FMTCell>>> GetCebChannel(FmsTrayRequest fmsTray);
    /// <summary>
    /// 换盘结束通知
    /// </summary>
    /// <param name="fmsTray"></param>
    /// <returns></returns>
    Task<AdminCodeResult<string>> CebWorkDoneInform(FmsTrayRequest fmsTray);
}
